package m.toolkit.codegenerator.pdm;

import java.util.List;

import m.framework.exception.SystemException;
import m.framework.utils.StringUtil;


/**
 * @author 王永明
 * @date date 2009-3-16 下午02:44:31
 * 
 */
public class Table {
	public String id;
	public String name;// 名称

	private String code;// 代码

	public List<Column> columns;// 所有列

	public Column pkColum;// 主键列
	
	public List<Key> keys;// 所有约束

	public List<Column> getColumns() {
		return columns;
	}
	
	/**返回java命名规范的代码*/
	public String modelName(){
		int idx=code.indexOf("_");
		if(idx==-1){
			throw new SystemException("表名必须设置前缀");
		}
		String name=code.substring(idx+1);
		if(name.indexOf("_")!=-1){
			throw new SystemException("表名只能有1个下划线"+code);
		}
		return name;
	}

	public String getFirstUpJavaCode(){
		return StringUtil.firstUp(this.modelName());
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	public Column getPkColum() {
		return pkColum;
	}
	
	public Column getPkColumn(){
		return pkColum;
	}

	public Column getColumn(String code) {
		for(Column c:this.columns){
			if(c.getCode().equals(code)){
				return c;
			}
		}
		throw new SystemException("找不到字段"+code);
	}

}
